'use strict';
const db = uniCloud.database()
//版本更新集合
exports.main = async (event, context) => {
	//event为客户端上传的参数
	console.log(event)
	let result = {
		code: 0,
		isUpdate: false //默认不需要更新
	}
	if (event.params.appid && event.params.version) {
		// //根据UA判断系统平台
		const os = /iPhone|iPad/.test(context.CLIENTUA) ? 'ios' : 'android'
		//查询数据最新的版本
		let record = await db.collection('app-version').where({
			appid: event.params.appid
		}).limit(1).get()
		//获取结果存在
		if (record && record.data && record.data.length > 0) {
			let versionInDb = record.data[0][os] //拿到当前系统的信息
			//计算版本号是否大于当前传入的版本号
			if (compare(versionInDb.version, event.params.version) == 1) {
				result = {
					code: 0,
					isUpdate: true,
					remark: versionInDb.remark, //更新描述
					url: versionInDb.url ,//更新地址
					fileSize:versionInDb.fileSize
				}
			} else {
				result = {
					code: 0,
					isUpdate: false,
					msg: '当前版本已经是最新的，不需要更新！'
				}
			}
		}
	}

	console.log('检查结果：', result);

	//返回数据给客户端
	return result
};

/**
 * 对比版本号
 * @param {Object} v1
 * @param {Object} v2
 */
function compare(v1, v2) {
	let arr_1 = v1.split('.')
	let arr_2 = v2.split('.')
	for (var i = 0; i < arr_1.length; i++) {
		if (parseInt(arr_1[i]) > parseInt(arr_2[i])) {
			return 1
		} else if (parseInt(arr_1[i]) < parseInt(arr_2[i])) {
			return -1
		}
	}
	return 0
}
